// pages/pay/pay.js
var util = require('../../utils/util.js')
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    buttonclickdou: true, //点击按钮连击状态控制
    ordernums:'',
    SelectSwichIcon: 'Balance',   //选择支付方式  "Balance"为余额支付，"wechat"为微信支付
    payStatus:0,   //支付状态，0为未支付，1为已支付
    orderNum: 0, //订单号
    payMoney: 0, //支付金额
    myBalance: 0, //余额
    openStatus:'success', //柜子打开状态
    openStr: '', //柜子编号
    openText: '号柜子正在打开中...', //柜子打开状态说明
    getmsgone:0, //倒计时间
    coupondisst:true, //优惠券显示状态
    submitst: true, //提交状态
    getCouponItem: [],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if (options.ordernum){
      this.setData({ ordernums: options.ordernum })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    app.publicchangenavigate()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var that = this
    //请求订单数据（含余额）
    if (that.data.ordernums) {
      util.AJAX('Home/Index/reqorderinfo', { ordernums: that.data.ordernums }, function (res) { //方法体
        if (res.data.StatusCode == 100) {  //成功
          that.setData({
            orderNum: res.data.Info.ordernum, //订单号
            payMoney: res.data.Info.paymoney, //支付金额
            myBalance: res.data.Info.balance, //余额
            openStr: res.data.Info.gzmbh, //柜子编号
          })

          //开始倒计时
          var time = res.data.Info.djtime  //倒计时总时间

          var inter = setInterval(function () {
            that.setData({
              getmsgone: time + "s",
            })
            time--
            if (time < 0) {
              clearInterval(inter)
              that.setData({
                getmsgone: "0s"
              })
            }
          }, 1000)
        }else{
          wx.showModal({
            title: '提示',
            showCancel: false,
            content: res.data.Msg
          })
        }
      }, 'POST')
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
	return app.globalshare();
  },
  //选择支付方式
  SelectSwich:function(e){
    this.setData({
      SelectSwichIcon:e.currentTarget.dataset.payway
    })
  },
  //确认支付
  confirmPayment:function(e){
    //  this.setData({
    //    payStatus:1 
    //  })
    var that = this
    //如果未支付，方可请求调起支付
    if (that.data.payStatus != 1) {
      if (that.data.submitst){
        //开启加载
        wx.showLoading({
          title: '加载中',
          mask: true,
        })
        that.setData({
          submitst: false, //提交状态
        })
        //支付类型
        switch (that.data.SelectSwichIcon) {
          case 'weChat':
            var paytypeval = 1
            break;
          case 'Balance':
            var paytypeval = 2
            break;
        }
        //请求调起支付
        util.AJAX('Home/Index/publicPayFrontFun', { ordernums: that.data.ordernums, paytype: paytypeval }, function (res) { //方法体
          //关闭加载
          wx.hideLoading()

          if (res.data.StatusCode == 100) {  //成功
            if (paytypeval == 1) { //调起微信支付
              //小程序调起支付
              wx.requestPayment({
                'timeStamp': res.data.Info.timeStamp,
                'nonceStr': res.data.Info.nonceStr,
                'package': res.data.Info.package,
                'signType': res.data.Info.signType,
                'paySign': res.data.Info.paySign,
                'success': function (res) {
                  that.setData({ payStatus: 1, }) //标记为已支付
                  //开始请求用户最新发放的优惠券
                  setTimeout(function () {
                    util.AJAX('Home/Index/getUserDanCop', { userinfoid: app.globalData.userInfoId, ordernums: that.data.ordernums }, function (res) { //方法体
                      if (res.data.StatusCode == 100) { //打开成功
                        that.setData({
                          coupondisst: false, //优惠券显示状态
                          getCouponItem: [{
                            index: 0,
                            couponNum: res.data.Info[0].money,
                            couponType: res.data.Info[0].title,
                            validity: res.data.Info[0].endtime,
                            usageMode: res.data.Info[0].condition
                          }],
                        })
                      } else {
                        that.setData({
                          coupondisst: true, //优惠券显示状态
                          getCouponItem: [],
                        })
                      }
                    }, 'POST')
                  }, 1000)

                  wx.showToast({
                    title: '支付成功',
                    icon: 'success',
                    duration: 2000,
                    success: function (res) {
                      util.AJAX('Home/Index/openCabint', { ordernums: that.data.ordernums }, function (res) { //方法体
                        if (res.data.StatusCode == 100) { //打开成功
                          that.setData({
                            openStatus: 'success', //柜子打开状态
                            openText: '号柜子打开成功', //柜子打开状态说明
                          })
                        } else {
                          that.setData({
                            openStatus: 'fail', //柜子打开状态
                            openText: '号柜子正在打开中...', //柜子打开状态说明
                          })

                          wx.showModal({
                            title: '提示',
                            showCancel: false,
                            content: res.data.Msg
                          })
                        }
                      }, 'POST')
                    }
                  })
                },
                'fail': function (res) {
                  that.setData({
                    submitst: true, //提交状态
                  })
                  //更新订单状态
                  util.AJAX('Home/Index/wxpayFailChg', { ordernums: that.data.ordernums }, function (res) { //方法体
                    if (res.data.StatusCode == 100) { //打开成功

                    } else {

                    }
                    wx.showModal({
                      title: '提示',
                      showCancel: false,
                      content: '支付失败'
                    })
                  }, 'POST')
                }
              })
            } else { //余额支付
              that.setData({ payStatus: 1 }) //标记为已支付

              //开始请求用户最新发放的优惠券
              setTimeout(function () {
                util.AJAX('Home/Index/getUserDanCop', { userinfoid: app.globalData.userInfoId, ordernums: that.data.ordernums }, function (res) { //方法体
                  if (res.data.StatusCode == 100) {
                    that.setData({
                      coupondisst: false, //优惠券显示状态
                      getCouponItem: [{
                        index: 0,
                        couponNum: res.data.Info[0].money,
                        couponType: res.data.Info[0].title,
                        validity: res.data.Info[0].endtime,
                        usageMode: res.data.Info[0].condition
                      }],
                    })
                  } else {
                    that.setData({
                      coupondisst: true, //优惠券显示状态
                      getCouponItem: [],
                    })
                  }
                }, 'POST')
              }, 1000)

              wx.showToast({
                title: '支付成功',
                icon: 'success',
                duration: 2000,
                success: function (res) {
                  util.AJAX('Home/Index/openCabint', { ordernums: that.data.ordernums }, function (res) { //方法体
                    if (res.data.StatusCode == 100) { //打开成功
                      that.setData({
                        openStatus: 'success', //柜子打开状态
                        openText: '号柜子打开成功', //柜子打开状态说明
                      })
                    } else {
                      that.setData({
                        openStatus: 'fail', //柜子打开状态
                        openText: '号柜子正在打开中...', //柜子打开状态说明
                      })
                    }
                  }, 'POST')
                }
              })
            }
          } else {
            that.setData({
              submitst: true, //提交状态
            })
            wx.showModal({
              title: '提示',
              showCancel: false,
              content: res.data.Msg
            })
          }
        }, 'POST')
      }
    }

  },
  //重新手动打开柜子
  afreshOpenCab:function(){
    var that = this
    if (that.data.buttonclickdou == true){
        that.setData({
          buttonclickdou:false,
        })

        setTimeout(function () {  //延时操作
          wx.showLoading({
            title: '玩命打开中...',
            mask: true,
            success: function (res) {
              util.AJAX('Home/Index/openCabint', { ordernums: that.data.ordernums }, function (res) { //方法体
                if (res.data.StatusCode == 100) { //打开成功
                  that.setData({
                    buttonclickdou: true,
                    openStatus: 'success', //柜子打开状态
                    openText: '号柜子打开成功', //柜子打开状态说明
                  })
                } else {
                  that.setData({
                    buttonclickdou: true,
                    openStatus: 'fail', //柜子打开状态
                    openText: '号柜子正在打开中...', //柜子打开状态说明
                  })
                }
                wx.hideLoading()
              }, 'POST')
            }
          })
        },300)
    }
  }
})